package gestionBDD;

//import org.gjt.mm.mysql.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * Singleton gérant la connexion à la base de donnée.
 */
public class AccesBDD {
	
	/**
	 * Instance du singleton.
	 */
	static AccesBDD instance;
	/**
	 * Instance de la connexion.
	 */
	static Connection connexion;
	
	/**
	 *  Constructeur privé pour modèle "singleton"
	 */
	private AccesBDD() {
		/* Rien */
	}
	
	/**
	 * Obtenir l'instance du singleton
	 * @return devine
	 */
	public static AccesBDD getInstance() {
		if(instance == null) {
			instance = new AccesBDD();
		}
		return instance;
	}

	/**
	 * Obtenir la connexion à la base de donnée.
	 * Activation de la connexion si non-initialisée.
	 * @return connexion à la Base De Données.
	 */
	public static Connection getConnexion() {
		if (connexion == null) {
			connecter();
		}
		return connexion;
	}
	
	/**
	 * Connecter à la BDD.
	 * @param url De la forme mysql://127.0.0.1/nomBDD
	 * @param login Utilisateur
	 * @param mdp	Mot de passe de l'utilisateur
	 */
	static void connecter(String url, String login, String mdp) {
		try {
			Class.forName("org.gjt.mm.mysql.Driver");
			connexion = DriverManager.getConnection("jdbc:" + url, login, mdp);
			connexion.setAutoCommit(false);
		} catch (ClassNotFoundException e ) {
			/* TODO */
		} catch	(SQLException e) {
			/* TODO */
		}
	}
	
	/**
	 * Connecter à la BDD par defaut.
	 */
	static void connecter() {
		connecter("mysql://127.0.0.1/gestionphotos", "photo", "gestionphoto");
	}
	
	/**
	 * Deconnexion de la base de donnée.
	 */
	static void deconnexion() {
		/* TODO rien ? */
	}
}
